package org.lzfto.flink.demo.business.flinkTest.base.record;

import java.io.File;
import java.io.Serializable;

/**
 * excel配置记录
 * 
 * <pre>
 *    连接器根据path,fileName,extension,extentsionHyphen和分片序号构建一个文件名
 *    例如:
 *    path=d:\data
 *    fileName=student
 *    extension=xlsx
 *    extensionHyphen=-
 *    分片序号（由作业管理提供）=1
 *    则完整的文件名=d:\data\student-1.xlsx
 * </pre>
 */
public record ExcelOptionRecord(String path, String fileName, String extension, // 文件后缀
		String extensionHyphen, // 文件名称和后缀之间的连字符
		Boolean deleteAfterRead, Integer startRow // 开始行（不含标题部分开始)。0表示第一行
) implements Serializable {
	/**
	 * 获取完整文件名称
	 * 
	 * @param splitNo 分片序号，不可空，必须>=1
	 * @return 全路径文件名称
	 * <pre>
	 *    连接器根据path,fileName,extension,extentsionHyphen和分片序号构建一个文件名
	 *    例如:
	 *    path=d:\data
	 *    fileName=student
	 *    extension=xlsx
	 *    extensionHyphen=-
	 *    分片序号（由作业管理提供）=1
	 *    则完整的文件名=d:\data\student-1.xlsx
	 * </pre>
	 */
	public String getFullPath(int splitNo) {
		String realFileName = fileName() + extensionHyphen() + String.valueOf(splitNo) + "." + extension();
		String fullPath = path() + File.separator + realFileName;
		return fullPath;
	}

}
